home *** CD-ROM | disk | FTP | other *** search
/ Aminet 4 / Aminet 4 - November 1994.iso / aminet / dev / misc / flexcat1_3.lha / flexcat / Modula2Mod.sd < prev    next >
Encoding:
Text File  |  1994-07-08  |  2.2 KB  |  116 lines

  1. ##shortstrings
  2. ##stringtype Oberon
  3. IMPLEMENTATION MODULE %bLocale ;
  4.  
  5. (****************************************************
  6.  
  7. This file was created automatically by 'FlexCat v1.3'
  8.  
  9.                 Do NOT edit by hand!
  10.  
  11. ****************************************************)
  12.  
  13. FROM SYSTEM   IMPORT  ADR, ADDRESS, TAG ;
  14. FROM UtilityD IMPORT  tagDone ;
  15.  
  16. IMPORT  ll  : OptLocaleL,
  17.         ld  : LocaleD ;
  18.  
  19. CONST
  20.   builtinlanguage = %l ;
  21.   version = %v ;
  22.  
  23. VAR
  24.   catalog    : ld.CatalogPtr ;
  25.  
  26. TYPE
  27.   AppString = RECORD
  28.      id  : LONGINT ;
  29.      str : ld.StrPtr ;
  30.   END ;
  31.  
  32.   AppStringArray = ARRAY [0..%n-1] OF AppString ;
  33.  
  34. CONST
  35.   AppStrings = AppStringArray  {
  36.     AppString{id : %i, str : ADR(%iStr)}%(,)
  37.   } ;
  38.  
  39. (*/// "CloseCatalog()" *)
  40.  
  41. PROCEDURE CloseCatalog() ;
  42.  
  43. BEGIN
  44.   IF catalog # NIL THEN
  45.     ll.CloseCatalog(catalog) ;
  46.     catalog := NIL
  47.   END;
  48. END CloseCatalog ;
  49.  
  50. (*\\\*)
  51.  
  52. (*/// "OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;" *)
  53.  
  54. PROCEDURE OpenCatalog(loc : ld.LocalePtr ; language : ARRAY OF CHAR) ;
  55.  
  56. VAR
  57.    tagPtr : ADDRESS ;
  58.    tags   : ARRAY [0..7] OF LONGINT ;
  59.  
  60. BEGIN
  61.   CloseCatalog() ;
  62.   IF (catalog = NIL) & (ll.localeBase # NIL) THEN
  63.     IF language[0] # "\o" THEN
  64.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  65.                           ld.ocLanguage,        ADR(language),
  66.                           ld.ocVersion,         version,
  67.                           tagDone) ;
  68.      ELSE
  69.       tagPtr := TAG(tags, ld.ocBuiltInLanguage, ADR(builtinlanguage),
  70.                           ld.ocVersion,         version,
  71.                           tagDone) ;
  72.     END (* IF *) ;
  73.     catalog := ll.OpenCatalogA(loc, ADR("%b.catalog"), tagPtr) ;
  74.   END (* IF *) ;
  75. END OpenCatalog ;
  76.  
  77. (*\\\*)
  78.  
  79. (*/// "GetString(num : LONGINT) : ld.StrPtr" *)
  80.  
  81. PROCEDURE GetString(num : LONGINT) : ld.StrPtr ;
  82.  
  83. VAR
  84.   i       : LONGINT ;
  85.   default : ld.StrPtr ;
  86.  
  87. BEGIN
  88.   i := 0 ;
  89.  
  90.   WHILE (i < %n) AND (AppStrings[i].id # num) DO
  91.     INC(i)
  92.   END (* WHILE *) ;
  93.  
  94.   IF i # %n THEN
  95.     default := AppStrings[i].str ;
  96.    ELSE
  97.     default := NIL ;
  98.   END (* IF *) ;
  99.  
  100.   IF catalog # NIL THEN
  101.     RETURN ll.GetCatalogStr(catalog, num, default) ;
  102.    ELSE
  103.     RETURN default ;
  104.   END (* IF *) ;
  105. END GetString ;
  106.  
  107. (*\\\*)
  108.  
  109. BEGIN
  110.  
  111. CLOSE
  112.  
  113.   CloseCatalog() ;
  114.  
  115. END %bLocale .
  116.